/**
 * @作者 zxy
 * @时间 2023-04-22 20:55
 * @说明 389. 找不同
 * 给定两个字符串 s 和 t ，它们只包含小写字母。
 * 字符串 t 由字符串 s 随机重排，然后在随机位置添加一个字母。
 * 请找出在 t 中被添加的字母。
 * 示例 1：
 * 输入：s = "abcd", t = "abcde"
 * 输出："e"
 * 解释：'e' 是那个被添加的字母。
 * 示例 2：
 * 输入：s = "", t = "y"
 * 输出："y"
 */
public class Solution {
    /**
     * 执行用时：3 ms, 在所有 Java 提交中击败了40.32%的用户
     * 内存消耗：39.9 MB, 在所有 Java 提交中击败了 34.38%
     * 的用户
     * @param s
     * @param t
     * @return
     */
    public char findTheDifference(String s, String t) {
        int[] recs = new int[26];
        int[] rect = new int[26];
        int i = 0, j = 0;
        while (i < s.length() || j < t.length()) {
            if (i < s.length()) {
                recs[s.charAt(i) - 'a']++;
                i++;
            }
            if (j < t.length()) {
                rect[t.charAt(j) - 'a']++;
                j++;
            }
        }
        for (i = 0; i < 26; i++) {
            if (recs[i] != rect[i]) {
                return (char) ('a' + i);
            }
        }
        return 'a';
    }
}
